package main

import (
	"fmt"
	"sync"
)

var wg sync.WaitGroup

/*
如何解决主的groutine 在子协程结束后自动结束
WatGroup 提供了三个有用的函数
Add
Done
Wait
Add 的数量和Done 的数量必须相等

*/

func f(n int) {
	defer wg.Done()
	fmt.Println(n)

}

func main() {
	//wg.Add(5)
	for i := 0; i < 5; i++ {
		wg.Add(1)
		go f(i)
	}
	wg.Wait()
}
